Block heater control assembly

ABSTRACT

A system for use with a block heater connected to an engine for pre-start heating of the engine. The system includes a power source, a relay assembly coupled to the power source, a temperature sensor, and a controller. The relay assembly, when closed, electrically connects the power source to the block heater, to thereby energize the block heater to heat the engine. The temperature sensor senses an ambient temperature indicative of a temperature of the engine. The controller is programmed to selectively activate the relay assembly to energize the block heater such that the engine coupled to the block heater is heated from the sensed ambient temperature to a target temperature at approximately a target time.

PRIORITY

The present application is a continuation of U.S. patent applicationSer. No. 15/708,677, filed Sep. 19, 2017, which is hereby incorporatedby reference in its entirety.

BACKGROUND

When a diesel engine is below a certain threshold temperature, it can bedifficult or impossible to start the engine until the engine is heated.When a vehicle is being used, the natural action of the engine generallymaintains the engine at a sufficiently high temperature to operate;however, in typical daily use, vehicles are not utilized continuouslyfor an entire 24-hour period. If a vehicle is left outside or otherwiseexposed to sufficiently cold temperatures, the vehicle will not beusable after a certain period of time because the engine will be toocold to start. Therefore, many diesel engines are installed with anelectrical block heater that is configured to pre-heat the cylinderblock of the engine when activated. Many commercial trucking businesses,public transit bus systems, and other entities that own vehicles withdiesel engines (especially those located in colder climates) activatethe block heaters of their vehicles either every night or on nights thatare expected to be especially cold so that the engines of their vehiclesare pre-heated and ready to start the following morning. Having theblock heaters running continuously all night generally wastes fuel orelectricity though because the length of time required for a blockheater to fully pre-heat an engine is less than the length of time thatthe block heaters are generally left on, even in exceptionally coldclimates. The wasted fuel or electrical energy results in substantialexcess costs, which only increases with the number of vehicles in thefleet that require pre-heating. Furthermore, in situations whereemployees are expected to activate the block heaters of the vehiclesthemselves when especially cold temperatures are imminent, unexpectedlycold temperatures or human error can result in substantial productivitylosses when the vehicles' engines are too cold to start for thesubsequent use.

While several devices have been made and used, it is believed that noone prior to the inventors has made or used the device described in theappended claims.

SUMMARY

In one general aspect, the present invention is directed to a system foruse with a block heater connected to an engine for pre-start heating ofthe engine. The system comprises a power source; a relay assemblycoupled to the power source; a temperature sensor; and a controller. Therelay assembly, when closed, electrically connects the power source tothe block heater, to thereby energize the block heater to heat theengine. The temperature sensor senses an ambient temperature indicativeof a temperature of the engine. The controller is operably connected toeach of the temperature sensor and the relay assembly. Further, thecontroller is programmed to: (1) determine a power of the block heaterby applying a voltage to the block heater and detecting a current drawthereof resulting from the voltage; (2) determine the ambienttemperature based on inputs from the temperature sensor; (3) determine aheating duration for the block heater, where the heating durationcorresponds to a length of time required by the block heater to heat theengine from the ambient temperature to a target engine temperature,determined based on, in part, the power of the block heater; and (4)control the relay assembly to electrically connect the power source tothe block heater to activate the block heater according to the heatingduration and a target time, such that the engine reaches the targetengine temperature at approximately the target time (e.g., +/−5 minutesor +/−2 minutes of the start time).

In another general aspect, the controller is programmed to: (1) detectwhen the block heater is connected to the relay assembly by transmittinga current through an electrical connection of the relay assembly anddetecting when the electrical connection reads neutral; (2) determinethe ambient temperature based on inputs from the temperature sensor; (3)determine a heating duration for the block heater, the heating durationcorresponding to a length of time required by the block heater to heatthe engine from the ambient temperature to a target temperature; and (4)control the relay assembly to electrically connect the power source tothe block heater to activate the block heater according to the heatingduration and a target time, such that the engine reaches the targettemperature at approximately the target time.

In another general aspect, the present invention is directed to a methodfor controlling a block heater connected to an engine for pre-startheating of the engine. The method comprises the steps of: (1)determining a power of the block heater by applying a voltage to theblock heater and detecting a current draw thereof resulting from thevoltage; (2) determining an ambient temperature indicative of atemperature of the engine based on input from a temperature sensor; (3)determining a heating duration for the block heater, the heatingduration corresponding to a length of time required by the block heaterto heat the engine from the ambient temperature to a target temperature,determined based on, in part, the power of the block heater; and (4)controlling a relay assembly to electrically connect a power source tothe block heater to activate the block heater according to the heatingduration and a target time, such that the engine reaches the targettemperature at approximately the target time.

FIGURES

Various embodiments of the present invention are described herein by wayof example in conjunction with the following figures, wherein:

FIG. 1A is a block diagram of a system for controlling one or more blockheaters, according to one or more aspects of this disclosure.

FIG. 1B is a block diagram of the system of FIG. 1A with multiple blockheaters connected thereto, according to one or more aspects of thisdisclosure.

FIG. 2A is a logic flow diagram of the process of controlling a blockheater as executed by the controller, according to one or more aspectsof this disclosure.

FIG. 2B is a logic flow diagram of the process of controlling a blockheater as executed by the controller, according to one or more aspectsof this disclosure.

FIG. 3 is a diagram plotting engine temperature as a function of time,according to one or more aspects of this disclosure.

FIG. 4 is a graphical user interface for the system, according to one ormore aspects of this disclosure.

FIG. 5 is a logic flow diagram of the process of detecting theconnection of a block heater as executed by the controller, according toone or more aspects of this disclosure.

FIG. 6 is a logic flow diagram of the process of detecting the power ofa block heater as executed by the controller, according to one or moreaspects of this disclosure.

DESCRIPTION

Before explaining various aspects in detail, it should be noted thatsuch aspects are not limited in their application or use to the detailsof construction and arrangement of parts illustrated in the accompanyingdrawings and description. The illustrative aspects may be implemented orincorporated in other aspects, variations and modifications, and may bepracticed or carried out in various ways. For example, the systems andmethods for controlling block heaters disclosed below are illustrativeonly and not meant to limit the scope or application thereof.Furthermore, unless otherwise indicated, the terms and expressionsemployed herein have been chosen for the purpose of describing theillustrative aspects for the convenience of the reader and are not tolimit the scope thereof.

Certain aspects will now be described to provide an overallunderstanding of the principles of the structure, function, manufacture,and use of the devices and methods disclosed herein. One or moreexamples of these aspects are illustrated in the accompanying drawings.Those of ordinary skill in the art will understand that the devices andmethods specifically described herein and illustrated in theaccompanying drawings are non-limiting examples aspects and that thescope of the various aspects is defined solely by the claims. Thefeatures illustrated or described in connection with one aspect may becombined with the features of other aspects. Such modifications andvariations are intended to be included within the scope of the claims.

FIG. 1A is a block diagram of the system 100 for controlling one or moreblock heaters 110, according to one or more aspects of this disclosure.The system 100 includes a relay assembly 104 communicatively coupled toa power source 108 and a controller 102 coupled to the relay assembly104 for controlling the operation of the relay assembly 104 with respectto the power source 108. The controller 102 can be programmed to controlthe activation of the relay assembly 104 to cause the relay assembly 104to electrically connect the power source 108 to the block heater 110,such that the block heater 110 is energized to heat the engine 112 sothat the engine 112 is heated to a target temperature at a target time.In one aspect, the controller 102 includes a processor operablyconnected to a memory 118 for executing instructions stored thereon. Therelay assembly 104 is configured such that one or more electricaldevices can be removably coupled to the relay assembly 104 via, e.g., anelectrical connection 122, for receiving power from the power source 108when the relay assembly 104 is activated (e.g., closed). In one aspect,the devices that are connectable to the relay assembly 104 includeheaters, e.g., block heaters 110, which in turn can be utilized to heatengines 112, motors, transmissions, and other mechanical orelectromechanical devices that require pre-heating to function in coldclimates. Although the following disclosure is discussed in terms ofheating the engines 112 of vehicles 114, this is merely for illustrativepurposes and the system 100 described herein is not limited to anyparticular application. In operation, the controller 102 is configuredto control the electrical connection between the power source 108 andthe block heater 110 through the relay assembly 104 to selectivelyactivate the block heater 110. Selective activation of the block heater110 allows the system 100 to, e.g., pre-heat the engine 112 of thevehicle 114 during cold weather, without requiring that the block heater110 be activated continuously during the period of time that the vehicle114 is not in use, as will be described in further detail below.

The relay assembly 104 includes one or more relays or switches that areconfigured to selectively couple a device to the power source 108. Thenumber of relays or switches (or outputs thereof, for individual relaysor switches having multiple outputs) included in the relay assembly 104can correspond to the maximum number of devices that are connectable tothe relay assembly 104, as dictated by the electrical characteristics ofthe power source 108. The relay assembly 104 can includeelectromechanical relays (e.g., reed relays), solid state relays, or anyother type of relay and combinations thereof.

The system 100 further includes a temperature sensor 106 that iscommunicatively coupled to the controller 102. In one aspect, thetemperature sensor 106 is positioned to detect the ambient temperaturein the environment surrounding the engine 112 or in the environment inwhich the engine 112 otherwise resides. The temperature sensor 106includes, e.g., a circuit comprising a thermistor, thermocouple, orresistance temperature detector, wherein the output of the circuit istemperature-dependent. The state or output of the temperature sensor 106corresponding to a temperature is continuously or periodically receivedby the controller 102 in order to track the temperature of theenvironment around the engine 112 over time. In one aspect, the rate atwhich the controller 102 determines the temperature via the temperaturesensor 106 can be programmed by a user. In various aspects, thetemperature sensor 106 can be integral to a housing unit 124 enclosingthe controller 102 and/or relay assembly 104, separable from the housingunit 124 enclosing the controller 102 and/or relay assembly 104, orotherwise positionable remotely from the controller 102. In any case,the temperature sensor 106 is preferably located close enough to theengine 112 so that the temperature readings from the temperature sensor106 are indicative of the engine's temperature.

The system 100 further includes a timer 116 that is communicativelycoupled to the controller 102. The timer 116 is configured to output atime or a signal indicative thereof. In one aspect, the timer 116includes, e.g., a clock generator. In another aspect, the timer 116includes, e.g., a transceiver configured to poll a server generating atime signal. The state or output of the timer 116 corresponding to atime is continuously or periodically received by the controller 102 inorder to, among other functions, allow the controller 102 to retrievethe current time, retrieve the day of the week, retrieve a system timeor counter, and/or calculate a difference between the current time and ascheduled or target time. In one aspect, the target time may be, e.g.,retrieved from the memory 118.

In various aspects, the system 100 can further include a user interface120 for displaying information to a user and/or receiving input orcommands from a user. In one aspect, the user interface 120 includes aGUI displayed on a display to which the controller 102 iscommunicatively coupled. The user interface 120 can allow a user to seta target time at which the user desires the engine 112 to be heated to atarget temperature by the block heater 110, a schedule (e.g., particulardays that the user wants the system 100 to control the activation of theblock heater 110), a size of the engine 112, the target temperature towhich the engine 112 is to be heated, and a variety of other options orvariables associated with the operation of the system 100. The userinterface 120 can be implemented with a touchscreen, a keypad orkeyboard, a voice recognition system, or any other suitable userinterface modality.

The various components of the system 100 can be contained within asingle housing unit 124 to which a block heater 110 is connectable.Alternatively, the various components can be combined together and/orcontained within separate housing units that are communicatively coupledtogether. For example, the relay assembly 104, controller 102, memory118, and power source 108 can be contained within a housing unit 124 andthe other components, such as the user interface 120, can becommunicatively, operably, or electrically coupled to the housing unit124 as a partially distributed system. For example, the user interface120 could be web-based application running on a user's remote computer,which is in communication, via the Internet, with a network server thathosts the web application. As another example, the controller 102 forexecuting the various calculations described herein can be locatedremotely from the housing unit 124 containing the memory 118 and therelay 104 assembly, but communicatively coupled thereto via, e.g., theInternet, in order to offload the communications from the housing unit124. The network server can be in communication with the controller 102,via wired or wireless links, so that user inputs via the web interfacecan be downloaded to the controller 102. As such, the unit 124 mayinclude a WiFi circuit that communicatively connects the unit 124 to anetwork access point (not shown) to connect the unit 124 to theInternet; or the unit 124 could have a wired Internet connection. As yetanother alternative, the system 100 can be completely distributed suchthat the components are positioned remotely from each other and arecommunicatively, operably, or electrically coupled, as appropriate.

FIG. 1B is a block diagram of the system 100 of FIG. 1A with multipleblock heaters 110A, 110B, 110C connected thereto, according to one ormore aspects of this disclosure. The relay assembly 104 can beconfigured to have a plurality of block heaters 110A, 110B, 110Cconnected to it simultaneously. Each of the block heaters 110A, 110B,110C corresponds to a separate vehicle 114A, 114B, 114C and each heats acorresponding engine 112A, 112B, 112C thereof. In such aspects, therelay assembly 104 includes a number of output ports or stations thatare each able to receive an electrical connection 122A, 122B, 122C fromeach of the block heaters 110A, 110B, 110C. Although FIG. 1B depictsthree block heaters 110A, 110B, 110C, the relay assembly 104 may beconfigured to receive any number of block heaters 110A, 110B, 110C, aslimited by the structural or electrical characteristics of the powersource 108. When multiple block heaters 110A, 110B, 110C are connectedto the relay assembly 104, the controller 102 independently monitors thestart time associated with each of the vehicles 114A, 114B, 114C andselectively controls each of the block heaters 110A, 110B, 110Caccordingly. In other words, although the functions and processes beloware discussed in terms of a single block heater 110A, 110B, 110C, thecontroller 102 can nonetheless be executing the processes with respectto each of the vehicles 114A, 114B, 114C and/or block heaters 110A,110B, 110C simultaneously or in parallel. In some aspects, the relayassembly 104 includes a plurality of relays or switches that are eachindividually connectable to one of the block heaters 110A, 110B, 110C.In these aspects, the controller 102 selectively controls each of theindividual relays or switches making up the relay assembly 104 in orderto selectively energize the block heaters 110A, 110B, 110C.

FIG. 2A is a logic flow diagram of a process 200 of controlling a blockheater 110 as executed by the controller 102, according to one or moreaspects of this disclosure. Code for implementing the process 200 can bestored as software instructions in the memory 118 that are executed bythe controller 102. In the following description of the process 200,reference should also be made to FIG. 1A. The process 200 executed bythe controller 102 includes determining, at step 202, the power of theblock heater 110. The power (e.g., wattage) output of the block heater110 corresponds to its heat output. In one aspect, the process 200determines, at step 202, the power output of the block heater 110 byretrieving a stored value associated with the particular block heater110 that is either input by a user (e.g., via the user interface) orautomatically detected by the system when the vehicle is connected tothe relay assembly 104. In one aspect, the identity of the vehicle 114corresponds to the port of the relay assembly 104 to which the vehicle114 is connected. The power output of the block heater 110 can be storedas a value in, e.g., a look-up table in the memory 118 of the system100. In another aspect, the process 200 can be configured to detect thepower required by the block heater 110 by generating an electrical pulseor ping that is transmitted from the power source 108 through the relayassembly 104 to the block heater 110 electrically connected thereto. Theresulting current from the ping can be sensed by, e.g., a currentsensing circuit, and then used to calculate the power drawn by the blockheater 110. As power is related to voltage and current in a knownmanner, the power drawn by the block heater 110 can be calculatedbecause the ping is generated at a known voltage (e.g., 120 V) and theresulting current can be sensed or determined.

The process 200 executed by the controller 102 further determines, atstep 204, the ambient temperature of the engine's environment. In oneaspect, the ambient temperature is determined based on data from thetemperature sensor 106, as described above. The temperature sensor 106can be positioned in close proximity to the vehicle 114 that isconnected to the relay assembly 104 such that the temperature determinedby the temperature sensor 106 is substantially equal to the temperatureof the environment in which the vehicle 114 (and its engine 112)resides. As long as the vehicle 114 has not been used recently, theambient or environmental temperature will be equal or substantiallyequal to the temperature of the engine 112, thereby allowing the ambienttemperature detected by the temperature sensor 106 to serve as a proxyfor the temperature of the engine 112 of the vehicle 114. The process200 thus obviates the need to directly detect the temperature of theengine 112, reducing the number of components required to be physicallyassociated with or otherwise communicatively coupled to the vehicle 114.

The process 200 executed by the controller 102 further determines, atstep 206, the time duration until the desired start time of the vehicle114 (i.e., time duration to start). In one aspect, the process 200determines the time duration based on the time difference between thecurrent time and the desired start time for the engine 112. In variousembodiments, there is a global or system-wide scheduled desired starttime that is stored in, e.g., the memory 118. In another aspect, therecan be individual desired start times for each particular vehicle 114that are stored in, e.g., the memory 118. Such aspects of the system canbe useful in order to, e.g., set a unique start time for each vehicle.In yet another aspect, the desired start times (whether global or on anindividual vehicle basis) can be based on and vary by the day of theweek. In such an embodiment, the controller 102 can determine the day ofthe week via the timer 116 or a separate system clock (e.g., a clockgenerator), retrieve the scheduled start time corresponding to both thevehicle 114 and the determined day of the week, and then calculate thedifference between the scheduled start time of the particular vehicle114 for the particular day and the current time. In this aspect, thesystem 100 can be configured to store unique start times for each day ofthe week for each vehicle 114. Such aspects of the system 100 can beuseful in order to, e.g., have the system 100 not activate a connectedblock heater 110 on certain days (e.g., weekends) or have the system 100activate a connected block heater 110 at different times on differentdays. In some aspects, the identity of the vehicle 114 utilized toretrieve the appropriate start time corresponds to the particular portof the relay assembly 104 to which the vehicle 114 is connected. Inother words, the system 100 can be configured to store certainparameters (e.g., a scheduled start time or engine size) in associationwith a specific port, rather than a particular detectable identity ofthe vehicle 114 itself. In still other aspects, the identity of thevehicle 114 utilized to retrieve the appropriate start time is input bya user via, e.g., the user interface 120. In such aspects, a user caninput particular parameters to be stored in association with a vehicle114 (or block heater 110 or other device) connected to a particular portof the relay assembly 104 or retrieve previously input stored parametersassociated with a vehicle 114 via the user interface 120.

The process 200 executed by the controller 102 further determines, atstep 208, the duration of time required by the block heater 110 to heatthe engine 112 to a desired engine starting temperature. The amount oftime required by the block heater 110 to heat the engine 112 to thedesired starting temperature is a function of the engine's initialtemperature (detected at step 204), the thermal properties of the engine112 (which are dictated generally by the size of the engine 112, oftenexpressed in terms of, e.g., liters), the power or size of the blockheater 110 (in terms of, e.g., wattage), and of course the desiredengine starting temperature. In some aspects, the system 100 isconfigured to automatically detect the power or size of the block heater110, as described above. In other aspects, the power or size of theblock heater 110 is input by the user (e.g., via the user interface 120)and stored in the memory 118 for subsequent retrieval by the controller102. The relationship between the variables to calculate the heatingduration can be stored as algorithms executed by the processorperforming run-time calculations, a series of discrete values in alook-up table, a linear or nonlinear best curve fit formula based on thecharacterization data, or any other such format. FIG. 3, for example, isa diagram 300 plotting engine temperature 302 (y axis) as a function oftime 304 (x axis), according to one or more aspects of this disclosure.In this aspect, the curves 306, 308 depicted in the diagram 300 can beoutputs from algorithms representing best-fit curves calculated fromcharacterization or experimental data relating the change in enginetemperature over time for various initial temperatures 312, 314, enginessizes, and block heater power levels.

A first curve 306 represents the change in engine temperature 302 overtime 304 given a first initial temperature 312, an engine size (e.g., 15L), and a block heater power level (e.g., 1500 W). A second curve 308represents the change in engine temperature 302 over time 304 given asecond initial temperature 314, an engine size (e.g., 15 L), and a blockheater power level (e.g., 1500 W). The sizes of the engines 112 and thepowers of the block heaters 110 can be the same or different for each ofthe curves 306, 308. Engines 112 of different sizes and block heaters110 with different powers will have different thermal properties andwill thus affect the shapes of the curves 306, 308. For example, a thirdcurve 316 represents the first curve 306 wherein all of the variablesare held constant except the engine size, which is lower (e.g., 10 L).Lowering the engine size generally increases the rate of temperatureincrease because, in part, smaller engines have smaller surface areasand thus lose less heat to convection. As another example, a fourthcurve 318 represents the first curve 306 wherein all of the variablesare held constant except the block heater power, which is lower (e.g.,1200 W). Lowering the power of the engine generally decrease the rate oftemperature increase because it lowers the amount of energy beingtransferred to the engine block.

In one aspect, the process 200 can calculate a heating duration requiredto reach a particular target temperature by retrieving the particularcurve corresponding to the given initial temperature, engine size, andblock heater power. For example, if the ambient temperature andproperties of the engine 112 and the block heater 110 correspond to thefirst curve 306, the controller 102 causes the system 100 to retrievethe first curve 306 (or the algorithm representing the first curve 306)and then calculates a heating duration Time_(HD1) required to reach thegiven target temperature Temp_(T1). Alternatively, if the ambienttemperature and properties of the engine 112 and the block heater 110correspond to the second curve 308, the controller 102 causes the system100 to retrieve the second curve 308 (or the algorithm representing thesecond curve 308) and then calculates a heating duration Time_(HD2)required to reach the given target temperature Temp_(T2). Note that thecontroller 102 can assume that the initial temperature of the engine 112is equal to the ambient temperature detected via the temperature sensor106 at step 204. As such, the initial temperature 312, 314 utilized bythe algorithm or algorithms can be the ambient temperatures determinedat step 204. The curves 306, 308, 316, 318 depicted in FIG. 3 are merelyillustrative of the principles discussed herein and the system 100 caninclude any number of curves and/or algorithms representing the thermalproperties of any combination of types of engines 112 and block heaters110 from any initial temperature.

In another aspect, the process 200 calculates the heating durationutilizing an iterative calculation, rather than retrieving an algorithmcorresponding to a best-fit curve. In this aspect, the process 200performs a heat transfer calculation given the block heater power, thesize of the engine 112 (which corresponds to the surface area), and theknown specific heat of the engine block. The time component of the heattransfer calculation is a set value (e.g., ten minutes). The process 200then iteratively calculates the temperature change with the startingtemperature as the initial input and each output temperature as theinput for the corresponding iteration until the target temperature isreached. Each iteration calculates the bulk heat transfer by the blockheater 110 to the engine block, less the convective heat loss to thesurrounding environment. Because the time component of the heat transferequations is a known, set value, the number of iterations that theprocess 200 had to execute to reach the target temperature correspondsto the heating duration. For example, if the time component is tenminutes and the calculation requires thirty iterations to reach thetarget temperature, then the heating duration is estimates by thecalculations to be three hundred minutes. In addition to the twodescribed aspects, various other processes for calculating the heatingduration can be utilized.

In another aspect, the calculations to determine the heating duration atstep 208 can incorporate the altitude at which the engine 112 and blockheater 110 are located as an additional variable. The altitude can beeither input by the user or detected by an altitude sensorcommunicatively coupled to the controller 102. In these aspects, theprocess 200 would retrieve a best fit line corresponding to the detectedor input altitude, in addition to the starting temperature, block heaterpower, and engine size. For aspects of the process 200 utilizing aniterative calculation, the altitude can affect the convective heat lossterm in the equations and can therefore be incorporated into thecalculations.

Referring again to FIG. 2A, the process 200 executed by the controller102 further compares, at step 210, the calculated heating duration(determined at step 208) to the time duration to start (determined atstep 206). If the heating duration is less than the time duration tostart (i.e., if activated at the current time, the block heater 110would heat up the engine 112 to the target temperature prior to thescheduled start time), then the process 200 loops back to re-determine,at step 204, the ambient temperature and continues as described above.In some aspects, step 210 modifies the heating duration or the timeduration to start by a margin threshold. In such aspects, if the heatingduration is less than the time duration to start by a margin threshold(e.g., two minutes), such that the block heater 110 would heat up theengine 112 to the target temperature prior to the scheduled start timeby more than the margin threshold, then the process 200 loops back tostep 204. In some aspects, the process 200 incorporates a time delayprior to looping back to step 204. The time delay can be on the orderof, e.g., seconds or minutes. In one specific aspect, the time delay is30 seconds. The time delay can be implemented to conserve the processingpower of the system 100 because environmental temperature generallyrises relatively slowly and thus does not require continuous monitoringat the processing speeds at which computers are strictly capable ofrunning. If the heating duration is greater than or otherwise within themargin threshold of the time duration to start, then the process 200 asexecuted by the controller 102 activates, at step 212, the block heater110 by controlling (e.g., closing) the relay assembly 104 to operablyconnect the power source 108 to the block heater 110. Once the blockheater 110 receives power from the power source 108 through the relayassembly 104, the block heater 110 begins heating the engine 112.

FIG. 2B is an logic flow diagram of an alternative aspect of the process200 of controlling a block heater 110 as executed by the controller 102,according to one or more aspects of this disclosure. This aspect of theprocess 200 of controlling a block heater 110 determines, at step 202, apower of the block heater 110 and determines, at step 204, the ambienttemperature, as described above with respect to FIG. 2A. However, inthis aspect the process 200 then determines, at step 216, the currenttime by, e.g., retrieving a state or output from the timer 116. Theprocess 200 further determines, at step 218, the block heater start timecorresponding to the time at which the block heater 110 must start inorder to heat the engine 112 to the target temperature by the targettime. The block heater start time can be determined by calculating theheating duration (as described above with respect to FIG. 2A) of theblock heater 110 and then subtracting the heating duration from thetarget time (which can be retrieved from, e.g., the memory 108).

The process 200 then compares, at step 220, the current time (determinedat step 216) to the block heater start time (determined at step 218). Ifthe current time is on or after the block heater start time, then theprocess 200 activates the block heater 110. If the current time is noton or after the block heater start time, then the process 200 loops backto re-determine, at step 204, the ambient temperature and continues asdescribed above. In some aspects, the process 200 incorporates a timedelay prior to returning to determining the ambient temperature, asdescribed above with respect to FIG. 2A.

In some cases, it can be impossible to reach a target temperature givena certain starting temperature, block heater power, engine size, andother such conditions. For example, the second curve 308 depicted inFIG. 3 indicates that it would either take a long period of time or beimpossible to ever reach a target temperature of 70° F. given a startingtemperature of −40° F. for these particular conditions. To address this,the process 200 can be configured to put the heating duration to a setvalue (e.g., 12 hours) if the process 200 calculates that the heatingduration would exceed a threshold value or the temperature of the engine112 would never reach the target temperature. In some aspects, thethreshold value can be equal to the set value (e.g., 12 hours). In someaspects, the controller 102 can be configured to calculate the maxtemperature that could be reached given an input starting temperature,block heater power, and engine size and then refuse to allow a targettemperature exceeding a certain threshold relative to the maxtemperature to be accepted as input via the user interface 120. Forexample, the controller 102 could cause the user interface 120 to returnan error if the user attempted to enter a target temperature exceeding acertain percentage (e.g., 80%) of the calculated maximum temperaturegiven the other input conditions.

In summary, the aspects depicted in FIGS. 2A and 2B both representprocesses for controlling the relay assembly 104 to electrically connectthe power source 108 to the block heater 110 to activate the blockheater 110 according to the heating duration and a target time, suchthat the engine 112 reaches the target temperature at approximately thetarget time, without activating the block heater 110 overly early andthereby wasting energy. The processes depicted in FIGS. 2A and 2Bessentially differ in that one compares time durations (FIG. 2A) and theother compares times themselves (FIG. 2B). Various other methods ofcontrolling the relay assembly 104 to electrically connect the powersource 108 to the block heater 110, such that the block heater 110 isenergized to heat the engine 112 according to the calculated heatingduration and a target time, can be utilized.

FIG. 4 is a graphical user interface (GUI) 400 for the system 100,according to one or more aspects of this disclosure. In the followingdescription of the GUI 400, reference should also be made to FIG. 1A. Insome aspects, the user interface 120 of the system can include a GUI400. In various aspects, the GUI 400 can include a target time selection402 for setting a time at which the user wants the vehicle 114 to bescheduled to be ready (i.e., the target time), an engine size selection404 for setting the size of the engine 112 (in, e.g., liters), a blockheater size selection 406 for setting the size or power output of theblock heater 110 (in, e.g., watts), and a target temperature selection408 for setting a temperature to which the engine 112 is to be heated bythe block heater 110 (in, e.g., degrees Fahrenheit). In some aspects,the power output of the block heater 110 is determined automatically bythe system 100, rather than being manually input by a user through theGUI 400. In some aspects, the GUI 400 further includes a calendar or dayselection 410 for selecting the particular day or days of the week thatthe system 100 is configured to activate the particular block heater110. In other aspects, the GUI 400 further includes a month selectionfor selecting the particular months of the year that the system 100 isconfigured to activate the block heater 110. In still other aspects, theGUI 400 further includes a target time selection 402 for each of thedays and/or months provided by the day selection 410.

In some aspects, the GUI 400 further includes a station selection 412for selecting the particular station or port of the relay assembly 104that the various selections are to be stored in relation to. In theseaspects, identifying the port or station functionally serves the purposeof identifying the particular vehicle 114. Such aspects of the system100 can be utilized in arrangements where, e.g., the same vehicles areconsistently connected to the same port of the relay assembly 104 eachday. In other aspects, the GUI 400 further includes a vehicle IDselection for inputting a particular unique ID associated with eachvehicle. In these aspects, when the user first connects the particularvehicle 114 to the system, the user inputs the particular station wherethe vehicle 114 is connected via the station selection 412 and thevehicle ID. The system 100 then stores the various selections made viathe GUI 400 in association with the vehicle ID. When the vehicle 114 issubsequently connected to the system 100, the user can input theparticular vehicle ID and the system 100 will automatically retrieve thestored variables associated with the vehicle ID (e.g., engine size,target time, schedule, target temperature, and/or heater power) andbegin executing the process 200 (FIGS. 2A, 2B) for controlling the blockheater 110 according to these stored variables. All of the variousselections through the GUI 400 can be stored in the memory 118 forsubsequent retrieval by the logic, process, or instructions executed bythe controller 102.

FIG. 5 is a logic flow diagram of the process 500 of detecting theconnection of a block heater 110 as executed by the controller 102,according to one or more aspects of this disclosure. In the followingdescription of the process 500, reference should also be made to FIG.1A. The process 500 transmits, at step 502, an electrical currentthrough the electrical connection 122 that is configured to couple ablock heater 110 to the relay assembly 104. The transmitted current canbe a relatively small current, e.g., 2 mA. The process 500 thendetermines, at step 504, whether the electrical connection 122 reads asline voltage or as neutral via a circuit. If a block heater 110 isconnected to the relay assembly 104 via the electrical connection 122,then the line will read neutral and the process 500 determines, at step506, that a block heater 110 is connected to the relay assembly 104 atthe particular port. If a block heater 110 is not connected to the relayassembly 104, then the line will read line voltage and the process 500can loop to re-transmit, at step 502, an electrical current in order tocontinuously monitor whether a block heater 110 is connected to therelay assembly 104.

When it is determined, at step 506, that a block heater 110 is connectedat a port of the relay assembly 104, the system 100 can take a varietyof actions, such as automatically initiating the process 200 (FIGS. 2A,2B) of controlling the block heater 110. In such embodiments, thevariables such as engine size, target temperature, and activationschedule can be assigned to a particular port so that when the system100 detects that a block heater 110 has been connected to the relayassembly 104 at the particular port, the system 100 can automaticallyexecute the process 200 of controlling the block heater 110 according tothe target time (as determined in some cases by an activation schedule),engine size, and other variables stored in association with theparticular port. In other aspects, when it is determined, at step 506,that a block heater 110 is connected at a port of the relay assembly104, the system 100 causes the user interface 120 to automaticallydisplay a GUI 400 (e.g., FIG. 4) in order to prompt the user to enterthe information necessary to execute the process 200 of controlling theblock heater 110 for pre-heating the vehicle 114, such as a vehicle IDor the variables required for the computations of the process 200 ofcontrolling the block heater 110.

The process 500 can further include a step of detecting whether thecurrent transmitted through the electrical connection 122 is above athreshold or minimum level. If the current is below the threshold, thenthe process 500 can flag the occurrence of the low current. When theflag is detected by the controller 102, the controller 102 can cause theuser interface 120 to display an alert indicating that there is apotential error in the detection of the connection of a block heater 110so that a user can take corrective action.

FIG. 6 is a logic flow diagram of the process 500 of detecting theconnection of a block heater 110 as executed by the controller 102,according to one or more aspects of this disclosure. In the followingdescription of the process 500, reference should also be made to FIG.1A. The process 600 transmits, at step 602, a current through theelectrical connection to a block heater 110. The process 600 next, atstep 604, senses the resulting current from the transmission by, e.g., acurrent sensing circuit. The process 600 next, at step 606, calculatesthe power drawn by the block heater 110 according to the known voltageat which the transmission was generated and the sensed resulting currentfrom the block heater 110. By automatically detecting the power of theblock heater 110, the system 100 can obviate the need for the user tomanually enter this value through, e.g., the GUI (FIG. 4).

When a component is described as being “communicatively coupled” to oneor more other components, the components are coupled such that they areable to send and/or receive signals therebetween, the signals beingcapable of transmitting information for processing by any of theconnected components or a separate component. Unless stated otherwise,components can be communicatively coupled via either wired or wirelessconnections. Furthermore, such connections can be configured to transmitanalog signals, digital signals, or any type of signal electrically,electronically, or via any other such means. When a component isdescribed as being “operably coupled” to one or more other components,the components are coupled such that there is a functional relationshipbetween the components, i.e., the components are connected in a mannersuch that they perform the designated function.

Parts of this disclosure may be presented in terms of instructions thatoperate on data stored in a computer memory. An algorithm or processrefers to a self-consistent sequence of steps leading to a desiredresult, where a “step” refers to a manipulation of physical quantitieswhich may take the form of electrical or magnetic signals capable ofbeing stored, transferred, combined, compared, and otherwisemanipulated. These signals may be referred to as bits, values, elements,symbols, characters, terms, numbers. These and similar terms may beassociated with the appropriate physical quantities and are merelyconvenient labels applied to these quantities.

The foregoing description has set forth aspects of devices and/orprocesses via the use of block diagrams, flowcharts, and/or examples,which may contain one or more functions and/or operations. Each functionand/or operation within such block diagrams, flowcharts, or examples canbe implemented, individually and/or collectively, by a wide range ofhardware, software, firmware, or virtually any combination thereof. Inone aspect, several portions of the subject matter described herein,such as the controller, may be implemented via Application SpecificIntegrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs),digital signal processors (DSPs), Programmable Logic Devices (PLDs),circuits, registers, software components (e.g., programs, subroutines,or logic), and/or combinations of hardware and software components,logic gates, or other integrated formats. Some aspects disclosed herein,in whole or in part, can be equivalently implemented in integratedcircuits, as one or more computer programs running on one or morecomputers (e.g., as one or more programs running on one or more computersystems), as one or more programs being executed by one or moreprocessors (e.g., as one or more programs running on one or moremicroprocessors), as firmware, or as virtually any combination thereof.Designing the circuitry and/or writing the code for the software and orfirmware would be well within the skill of one of skill in the art inlight of this disclosure.

Although various aspects have been described herein, many modificationsand variations to those aspects may be implemented. Also, wherematerials are disclosed for certain components, other materials may beused. The foregoing description and following claims are intended tocover all such modification and variations.

The invention claimed is:
 1. A system for use with a block heaterconnected to an engine for pre-start heating of the engine, the systemcomprising: a power source; a relay assembly coupled to the powersource, the relay assembly connectable to the block heater forcontrolling electrical energy between the power source and the blockheater; a user interface for receiving a target temperature and a targettime at which the engine is to be heated to the target temperature; atemperature sensor; and a controller operably connected to each of thetemperature sensor, the user interface, and the relay assembly, whereinthe controller is programmed to: determine a power of the block heaterby: applying a voltage to the block heater; and detecting a current drawthereof resulting from the voltage; determine an ambient temperatureindicative of a temperature of the engine based on output from thetemperature sensor; determine whether the target temperature isreachable by the target time given the ambient temperature and the powerof the block heater and provide an alarm via the user interface inresponse to the target temperature or the target time being entered atthe user interface according to whether the target temperature isreachable by the target time; determine a heating duration for the blockheater, the heating duration corresponding to a length of time requiredby the block heater to heat the engine from the ambient temperature tothe target temperature, wherein the heating duration is determined basedon, in part, the power of the block heater; and control the relayassembly to electrically connect the power source to the block heater toactivate the block heater according to the heating duration and thetarget time, such that the engine does not reach the target temperatureprior to the target time.
 2. The system of claim 1, wherein thecontroller is programmed to: determine a time duration to startcorresponding to a difference between a current time and a target time;compare the heating duration to the time duration to start; and controlthe relay assembly to electrically connect the power source to the blockheater upon determining that the heating duration is greater than orequal to the time duration to start.
 3. The system of claim 1, whereinthe controller is programmed to: determine a block heater start timecorresponding to the target time less the heating duration; compare acurrent time to the block heater start time; and control the relayassembly to electrically connect the power source to the block heaterupon determining that the current time is on or after the block heaterstart time.
 4. The system of claim 1, wherein the controller isprogrammed to determine the heating duration based additionally on asize of the engine.
 5. The system of claim 4, further comprising: amemory that stores data for a plurality of curves, wherein each of theplurality of curves provides a relationship between heating duration andtemperature change for a given combination of the power of the blockheater and the size of the engine; wherein the controller determines theheating duration based on a curve of the plurality of curves that bestfits the determined ambient temperature, the target temperature, thesize of the engine to be heated, and the power of the block heater. 6.The system of claim 1, wherein the target time is associated with aweekday.
 7. The system of claim 1, wherein: the relay assembly isconnectable to a plurality of block heaters; and the controller isprogrammed to: determine the power of each the plurality of blockheaters; determine the heating duration for each of the plurality ofblock heaters; and control the relay assembly to electrically connectthe power source to each of the plurality of block heaters to activateeach of the plurality of blocks heater according to the heating durationand the target time, such that the engine to which each of the pluralityof block heaters is coupled does not reach the target temperature priorto the target time.
 8. The system of claim 1, wherein the controllerdetermines the heating duration based on iterative heat transfercalculations, wherein each iteration calculates a bulk heat transfer bythe block heater to the engine over an iteration time period.
 9. Asystem for use with a block heater connected to an engine for pre-startheating of the engine, the system comprising: a power source; a relayassembly coupled to the power source, the relay assembly connectable tothe block heater for controlling electrical energy between the powersource and the block heater; a user interface for receiving a targettemperature and a target time at which the engine is to be heated to thetarget temperature; a temperature sensor; and a controller operablyconnected to each of the temperature sensor, the user interface, and therelay assembly, wherein the controller is programmed to: detect when theblock heater is connected to the relay assembly by: transmitting acurrent through an electrical connection of the relay assembly; anddetecting when the electrical connection reads neutral; determine anambient temperature indicative of a temperature of the engine based onoutput from the temperature sensor; determine whether the targettemperature is reachable by the target time given the ambienttemperature and the power of the block heater and provide an alarm viathe user interface in response to the target temperature or the targettime being entered at the user interface according to whether the targettemperature is reachable by the target time; determine a heatingduration for the block heater, the heating duration corresponding to alength of time required by the block heater to heat the engine from theambient temperature to the target temperature; and control the relayassembly to electrically connect the power source to the block heater toactivate the block heater according to the heating duration and thetarget time, such that the engine does not reach the target temperatureprior to the target time.
 10. The system of claim 9, wherein thecontroller is programmed to: determine a time duration to startcorresponding to a difference between a current time and a target time;compare the heating duration to the time duration to start; and controlthe relay assembly to electrically connect the power source to the blockheater upon determining that the heating duration is greater than orequal to the time duration to start.
 11. The system of claim 9, whereinthe controller is programmed to: determine a block heater start timecorresponding to the target time less the heating duration; compare acurrent time to the block heater start time; and control the relayassembly to electrically connect the power source to the block heaterupon determining that the current time is on or after the block heaterstart time.
 12. The system of claim 9, wherein the controller isprogrammed to flag when the current is not above a threshold.
 13. Thesystem of claim 9, wherein the controller is programmed to determine theheating duration according to at least one of the power of the blockheater and a size of the engine.
 14. The system of claim 13, furthercomprising: a memory that stores data for a plurality of curves, whereineach of the plurality of curves provides a relationship between heatingduration and temperature change for a given combination of the power ofthe block heater and the size of the engine; wherein the controllerdetermines the heating duration based on a curve of the plurality ofcurves that best fits the determined ambient temperature, the targettemperature, the size of the engine to be heated, and the power of theblock heater.
 15. The system of claim 9, wherein the target time isassociated with a weekday.
 16. The system of claim 9, wherein: the relayassembly is connectable to a plurality of block heaters; and thecontroller is programmed to: determine the heating duration for each ofthe plurality of block heaters; and control the relay assembly toelectrically connect the power source to each of the plurality of blockheaters to selectively activate each of the plurality of blocks heateraccording to the heating duration and the target time, such that theengine to which each of the plurality of block heaters is coupled doesnot reach the target temperature prior to the target time.
 17. Thesystem of claim 9, wherein the controller determines the heatingduration based on iterative heat transfer calculations, wherein eachiteration calculates a bulk heat transfer by the block heater to theengine over an iteration time period.
 18. A method for controlling ablock heater connected to an engine for pre-start heating of the engine,the method comprising: receiving a target temperature and a target timeat which the engine is to be heated to the target temperature via a userinterface; determining a power of the block heater by: applying avoltage to the block heater; and detecting a current draw thereofresulting from the voltage; determining an ambient temperatureindicative of a temperature of the engine based on output from atemperature sensor; determining whether the target temperature isreachable by the target time given the ambient temperature and the powerof the block heater and providing an alarm via the user interface inresponse to the target temperature or the target time being entered atthe user interface according to whether the target temperature isreachable by the target time; determining a heating duration for theblock heater, the heating duration corresponding to a length of timerequired by the block heater to heat the engine from the ambienttemperature to the target temperature, wherein the heating duration isdetermined based on, in part, the power of the block heater; andcontrolling a relay assembly to electrically connect a power source tothe block heater to activate the block heater according to the heatingduration and a target time, such that the engine does not reach thetarget temperature prior to the target time.
 19. The method of claim 18,the method further comprising: determining a time duration to startcorresponding to a difference between a current time and a target time;comparing the heating duration to the time duration to start; andcontrolling the relay assembly to electrically connect the power sourceto the block heater upon determining that the heating duration isgreater than or equal to the time duration to start.
 20. The method ofclaim 18, wherein the controller is programmed to: determining a blockheater start time corresponding to the target time less the heatingduration; comparing a current time to the block heater start time; andcontrolling the relay assembly to electrically connect the power sourceto the block heater upon determining that the current time is on orafter the block heater start time.
 21. The method of claim 18, whereinthe heating duration is determined based additionally on a size of theengine.
 22. The method of claim 21, further comprising: storing data fora plurality of curves, wherein each of the plurality of curves providesa relationship between heating duration and temperature change for agiven combination of the power of the block heater and the size of theengine; wherein the heating duration is determined based on a curve ofthe plurality of curves that best fits the determined ambienttemperature, the target temperature, the size of the engine to beheated, and the power of the block heater.